/**************************************************************
  > File Name: pipe.c
  > Author: LuoLiang
  > Mail: 1204553475@qq.com 
  > Created Time: 2022年02月22日 星期二 02时44分15秒
 **************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <string.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <unistd.h>

#define BUFSIZE 128

int main(int argc, char **argv)
{
	int fd[2];
	int ret;
	char buf[BUFSIZE] = "hello world";
	char recvbuf[BUFSIZE] = {0};
	pid_t pid;

	ret = pipe(fd);
	if (ret < 0)
	{
		perror("pipo()");
		exit(1);
	}
	
	pid = fork();
	if (pid < 0)
	{
		perror("fork()");
		exit(1);
	}
	if (pid == 0)
	{
		close(fd[0]);
		write(fd[1], buf, strlen(buf));
		exit(0);
	}
	
	close(fd[1]);
	read(fd[0], recvbuf, 20);
	puts(recvbuf);

	wait(NULL);
    exit(0);
}
